1fabda2d316ebed24e73ea5ef0232909b7e2ae7c,src/org/exist/xquery/functions/FunInScopePrefixes.java,FunInScopePrefixes,eval,#Sequence[]#Sequence#,43
Before Change
Node node = nodeValue.getNode();
if (context.preserveNamespaces()) {
//Horrible hacks to work-around bad in-scope NS
if (node.getNodeType() == Node.ELEMENT_NODE && !context.inheritNamespaces()) {
collectNamespacePrefixes((ElementImpl)node, prefixes);
} else {
do {
collectNamespacePrefixes((ElementImpl)node, prefixes);
After Change
context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence);
}
Map prefixes = new LinkedHashMap();
NodeValue nodeValue = (NodeValue) args[0].itemAt(0);
if (nodeValue.getImplementationType() == NodeValue.PERSISTENT_NODE) {
//NodeProxy proxy = (NodeProxy) node;
Node node = nodeValue.getNode();
if (context.preserveNamespaces()) {
//Horrible hacks to work-around bad in-scope NS : we reconstruct a NS context !
if (context.inheritNamespaces()) {
//Grab ancestors' NS
do {
collectNamespacePrefixes((ElementImpl)node, prefixes);
node = node.getParentNode();
} while (node != null && node.getNodeType() == Node.ELEMENT_NODE);
/*
NodeSet ancestors = nodeValue.getAncestors(contextId, true);
for (Iterator i = ancestors.iterator(); i.hasNext(); ) {
proxy = (NodeProxy) i.next();
collectNamespacePrefixes((ElementImpl)node, prefixes);
}
*/
} else {
//Grab self's NS
if (node.getNodeType() == Node.ELEMENT_NODE)
collectNamespacePrefixes((ElementImpl)node, prefixes);
}
} else {
//untested : copied from below